xquery version "3.0";

declare variable $id_noticia as xs:string external;

let $usuarios := for $usuario in doc("bd-agregador.xml")//usuarios/usuario
            return $usuario

for $noticia in doc("bd-agregador.xml")//noticias/noticia
where $noticia/@id = $id_noticia
return 
<body>
    <div class="noticia">
        <div class="cabecera"><a href="{$noticia/url}">{data($noticia/titular)}</a></div>
        <div class="fecha">Publicado:{data($noticia/fecha/dia)}/{data($noticia/fecha/mes)}/{data($noticia/fecha/anio)} - {data($noticia/fecha/hora)}h {data($noticia/fecha/minuto)}m {data($noticia/fecha/segundo)}s</div>
        <div class="etiquetas">Etiquetas:{string-join($noticia/etiquetas/etiqueta,', ')}.</div>
        <div class="entradilla">{data($noticia/entradilla)}</div>
        {for $comentario in $noticia/comentarios/comentario
        let $date := xs:dateTime(
            concat(
                $comentario/@anio,"-",
                $comentario/@mes,"-",
                $comentario/@dia,"T",
                $comentario/@hora,":",
                $comentario/@minuto,":",
                $comentario/@segundo
            )
        )
        order by $date
        return <div class="comentario">
            <div class="autor">{data($usuarios[nickname=$comentario/@autor]/nombre)}</div>
            <div class="fecha_com">{data($comentario/@dia)}/{data($comentario/@mes)}/{data($comentario/@anio)} - {data($comentario/@hora)}h {data($comentario/@minuto)}m {data($comentario/@segundo)}s</div>
            <div class="texto">{data($comentario)}</div>
        </div>
        }
    </div>
</body>